What reasons are there to reduce the max-age of a logo to just 8 days? [closed]
Posted
by
callum
on Programmers
See other posts from Programmers
or by callum
Published on 2012-11-26T11:33:27Z
Indexed on
2012/11/26
17:26 UTC
Read the original article
Hit count: 292
Most websites set max-age=31536000
(1 year) on the Cache-control
headers of static assets such as logo images. Examples:
But there is a notable exception: Google's logo has max-age=691200
(8 days).
I've checked the headers on the Google logo in the past, and it definitely used to be 1 year. (Also, it used to be part of a sprite, and now it is a standalone logo image, but that's probably another question...)
What could be valid technical reasons why they would want to reduce its cache lifetime to just 8 days? Google's homepage is one of the most carefully optimised pages in the world, so I imagine there's a good reason.
Edit:
Please make sure you understand these points before answering:
Nobody uses short
max-age
lifetimes to allow modifying a static asset in future. When you modify it, you just serve it at a different URL. So no, it's nothing to do with Google doodles. Think about it: even if Google didn't understand this basic trick of HTTP, 8 days still wouldn't be appropriate, as only those users who don't have the original logo cached would see the doodle on doodle-day – and then that group of users would go on seeing the doodle for the following 8 days after Google changed it back :)Web servers do not worry about "filling up" the caches of clients (or proxies). The client manages this by itself – when it hits its own storage limit, it just starts dropping the lowest priority items to make space for new items. The priority score is based on the question "How likely am I to benefit from having cached this URL?", which is nothing to do with what
max-age
value the server sent when the URL was originally requested; it's a heuristic based on the "frecency" of requests for that URL. Themax-age
simply lets the server set a cut-off point – the time at which the client is supposed to discard the item regardless of how often it's being re-used. It would be very nice and trusting of a downstream client/proxy to rely on all origin servers "holding back" from filling up their caches, but I don't think we live in that world ;)
© Programmers or respective owner